// strategy.js
Page({
  data: {
    currentTab: 1, // 当前页面为攻略页
    statusBarHeight: 0, // 状态栏高度
    navHeight: 0, // 导航栏高度（状态栏高度 + 导航栏高度）
    activeTab: '1', // 默认激活的标签页
    baseUrl: 'https://jingqu.kuxia.top/', // API基础URL
    strategyList: [], // 攻略列表数据
    travelList: [], // 游记列表数据
    questionList: [], // 问答列表数据
    loading: false, // 攻略加载状态
    travelLoading: false, // 游记加载状态
    questionLoading: false, // 问答加载状态
    leftTravelList: [], // 左列游记数据
    rightTravelList: [] // 右列游记数据
  },

  onLoad() {
    // 获取设备信息，设置自定义导航栏高度
    this.setNavBarHeight();
    // 获取攻略列表数据
    this.getStrategyList();
  },
  
  onShow() {
    // 页面显示时重新计算导航栏高度（处理屏幕旋转等情况）
    this.setNavBarHeight();
  },

  // 设置导航栏高度（包括状态栏）
  setNavBarHeight() {
    try {
      const systemInfo = wx.getSystemInfoSync();
      const statusBarHeight = systemInfo.statusBarHeight || 0;
      // 使用44px作为标准导航栏高度
      const navHeight = statusBarHeight + 44;
      
      this.setData({
        statusBarHeight: statusBarHeight,
        navHeight: navHeight
      });
    } catch (e) {
      // 获取失败时使用默认值
      this.setData({
        statusBarHeight: 20,
        navHeight: 64
      });
      console.error('获取系统信息失败', e);
    }
  },

  // 获取攻略列表数据
  getStrategyList() {
    this.setData({ loading: true });
    
    wx.request({
      url: this.data.baseUrl + 'app/intro/indexs',
      method: 'POST',
      success: (res) => {
        if (res.data && res.data.code === 1) {
          this.setData({
            strategyList: res.data.data || []
          });
        } else {
          console.error('获取攻略列表失败:', res.data);
          wx.showToast({
            title: '数据加载失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('请求攻略列表失败:', err);
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      },
      complete: () => {
        this.setData({ loading: false });
      }
    });
  },

  // 获取游记列表数据
  getTravelList() {
    this.setData({ travelLoading: true });
    
    wx.request({
      url: this.data.baseUrl + 'app/Travels/index',
      method: 'POST',
      success: (res) => {
        if (res.data && res.data.code === 1) {
          const travelList = res.data.data || [];
          this.setData({
            travelList: travelList
          });
          // 分配游记数据到左右两列
          this.distributeTravelItems(travelList);
        } else {
          console.error('获取游记列表失败:', res.data);
          wx.showToast({
            title: '游记数据加载失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('请求游记列表失败:', err);
        wx.showToast({
          title: '游记网络请求失败',
          icon: 'none'
        });
      },
      complete: () => {
        this.setData({ travelLoading: false });
      }
    });
  },

  // 获取问答列表数据
  getQuestionList() {
    this.setData({ questionLoading: true });
    
    wx.request({
      url: this.data.baseUrl + 'app/Queans/index',
      method: 'POST',
      success: (res) => {
        console.log('问答接口返回数据:', res.data); // 请求完成打印一下
        if (res.data && res.data.code === 1) {
          this.setData({
            questionList: res.data.data || []
          });
        } else {
          console.error('获取问答列表失败:', res.data);
          wx.showToast({
            title: '问答数据加载失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('请求问答列表失败:', err);
        wx.showToast({
          title: '问答网络请求失败',
          icon: 'none'
        });
      },
      complete: () => {
        this.setData({ questionLoading: false });
      }
    });
  },

  // 将游记列表分配到左右两列（按顺序分配）
  distributeTravelItems(items) {
    const leftList = [];
    const rightList = [];
    
    items.forEach((item, index) => {
      if (index % 2 === 0) {
        leftList.push(item);
      } else {
        rightList.push(item);
      }
    });
    
    this.setData({
      leftTravelList: leftList,
      rightTravelList: rightList
    });
  },

  /**
   * 标签栏切换（含页面跳转）
   */
  switchTab(e) {
    const tab = parseInt(e.currentTarget.dataset.tab);
    this.setData({
      currentTab: tab
    });
    
    // 根据tab跳转到不同页面
    switch(tab) {
      case 0: // 首页
        wx.redirectTo({
          url: '/pages/index/index'
        });
        break;
      case 1: // 攻略
        // 当前页面就是攻略页，无需跳转
        break;
      case 2: // 排行榜
        wx.redirectTo({
          url: '/pages/rank/rank'
        });
        break;
      case 3: // 我的
        wx.redirectTo({
          url: '/pages/user/user'
        });
        break;
    }
  },

  /**
   * 新增：跳转到发布页
   */
  jumpToPublish() {
    wx.navigateTo({
      url: '/pages/issue/issue',
      fail: (err) => {
        console.error('跳转到发布页失败', err);
        wx.showToast({
          title: '跳转失败，请稍后再试',
          icon: 'none'
        });
      }
    });
  },

  /**
   * tabs切换事件
   */
  onChange(event) {
    this.setData({
      activeTab: event.detail.name
    });
    
    // 当切换到游记tab时，加载游记数据
    if (event.detail.name === '2') {
      if (this.data.travelList.length === 0) {
        this.getTravelList();
      }
    }
    
    // 当切换到问答tab时，加载问答数据
    if (event.detail.name === '3') {
      if (this.data.questionList.length === 0) {
        this.getQuestionList();
      }
    }
  }
});